package com.stella.ieproductivitybackend.service;

import com.stella.ieproductivitybackend.entity.*;
import com.stella.ieproductivitybackend.entity.Progress;

import java.util.List;
import java.util.Map;

/**
 * 首页服务层接口
 */
public interface HomeService {
    /**
     * 工厂列表
     */
    List<Factory> getFactoryList();

    /**
     * 品牌列表
     */
    List<Brand> getBrandList();

    /**
     * 品牌类型
     */
    List<Brand> getBrandType();

    /**
     * 型体数量
     */
    Integer getModelCount();

    /**
     * 型体列表
     */
    List<Model> getModelList();

    /**
     * 搜索型体
     */
    List<Model> searchModel(String model);

    /**
     * 员工总数
     */
    Integer getEmployeeCount();

    /**
     * 直间人工力其他数据
     */
    Map<String, Object> getEmployeeOther();

    /**
     * 直间人工力详情
     */
    List<Employee> getEmployeeDetail(String year, String month, String factory);

    /**
     * 纯粹达成率图表
     */
    Map<String, Object> getPureChart();

    /**
     * 纯粹达成率详情
     */
    Map<String, List<Pure>> getPureDetail();

    /**
     * 直间达成率图表
     */
    Map<String, Object> getDirectChart();

    /**
     * 直间达成率详情
     */
    Map<String, List<Direct>> getDirectDetail();

    /**
     * 入库标准秒值图表
     */
    Map<String, Object> getWarehousingChart();

    /**
     * 入库标准秒值其他数据
     */
    Map<String, Object> getWarehousingOther();

    /**
     * 入库标准秒值详情
     */
    List<Warehousing> getWarehousingDetail(String year, String month);

    /**
     * 入库标准秒值对比
     */
    List<Warehousing> getWarehousingCompare(String factory1, String year1, String month1, String factory2, String year2, String month2);

    /**
     * 当月成型完工数量图表
     */
    CompletedChart getCompletedChart();

    /**
     * 成型完工数量其它
     */
    Map<String, Object> getCompletedOther();

    /**
     * 成型完工数量详情
     */
    List<Completed> getCompletedDetail(String year, String month);

    /**
     * 当月新旧型体占比图表
     */
    ProportionChart getProportionChart();

    /**
     * 新旧型体占比其它
     */
    Map<String, Object> getProportionOther();

    /**
     * 新旧型体占比详情
     */
    List<Proportion> getProportionDetail(String year, String month);

    /**
     * PPH 图表
     */
    Map<String, Object> getPPHChart();

    /**
     * PPH 详情
     */
    Map<String, List<PPH>> getPPHDetail();

    /**
     * 与核算进度达成图表
     */
    Map<String, Object> getProgressChart();

    /**
     * 与核算进度达成其它
     */
    Map<String, Object> getProgressOther();

    /**
     * 与核算进度达成详情
     */
    List<Progress> getProgressDetail(String year, String month);
}
